﻿namespace Program1
{
    class Program
    {
        // 判断一个数是否为素数
        static bool IsPrime(int num)
        {
            if (num <= 1)
                return false;
            if (num == 2)
                return true;
            if (num % 2 == 0)
                return false;

            for (int i = 3; i * i <= num; i += 2)
            {
                if (num % i == 0)
                    return false;
            }
            return true;
        }

        // 找出一个数的所有素数因子
        static void FindPrimeFactors(int num)
        {
            Console.WriteLine($"数 {num} 的素数因子为：");
            for (int i = 2; i <= num; i++)
            {
                if (num % i == 0 && IsPrime(i))
                {
                    Console.Write(i + " ");
                    num /= i;
                    i--;
                }
            }
            Console.WriteLine();
        }

        static void Main()
        {
            Console.Write("请输入一个正整数：");
            if (int.TryParse(Console.ReadLine(), out int num) && num > 0)
            {
                FindPrimeFactors(num);
            }
            else
            {
                Console.WriteLine("请输入一个有效的正整数。");
            }
        }
    }
}